package com.zjj.wangluo.lianxi.tcp06;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author zhoujunjie
 * @desc TODO
 * @date
 *
 * 需求6：当服务器只是读取消息，客户端写出消息，此时一个服务器可以接收多个客户端（解决方案：线程池，优化需求5）
 */
public class TCPServer {

    public static void main(String[] args) {
        System.out.println("----------Server------------");
        ServerSocket ss = null;
        //创建线程池
        ThreadPool pool = new ThreadPool(2 , 3);
        try {
            ss = new ServerSocket(8888);
            //等待接入
            while (true) {
                Socket socket = ss.accept();
                System.out.println(socket.getRemoteSocketAddress()+"已上线！");

                //读  让线程池中的线程执行读任务
                pool.execute(new ReadThread(socket));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(ss!=null){
                try {
                    ss.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

}
